                                                    
            Essential information about this release of Mac OS 8 DDK

NOTE:   This document is an appendix (an "Appendix") to the Prototype License and Confidentiality Agreement (the "Agreement") between Apple Computer, Inc. ("Apple") and the addressee ("Licensee"). The Effective Date of this Appendix is June 10, 1996. This Appendix is for the Mac OS 8 Driver Development Kit v.0.4  (the "Prototype").

Welcome

On behalf of the entire Mac OS 8 effort, we welcome you aboard and are committed to helping you make your products a success. This Driver Development Kit is one just aspect of that commitment. We encourage you to take advantage of this DDK as well as Apples other developer resources including Evangelism and Technical Support.

Thank you for supporting Mac OS 8, the next major release of the Macintosh OS. The Driver Development Kit v.0.4  is the third of several planned driver developer releases, each of which has very specific support for plug-ins and capabilities.

This version of the DDK is preliminary and its content is oriented towards supporting ADB, Block Storage, Graphics, Input Device, Open Transport and SCSI driver developers. Please note that documentation is in draft format.  There were late changes to the OS that are not reflected in the documentation. For example, the Keyboard and Poining Device Families were merged into one User Input Device Family and the documentation does not yet reflect this change.

Non-disclosure

The contents of this CD, the Mac OS 8 Operating System and the documentation provided with this CD are covered by non-disclosure and prototype agreements. You may not discuss or distribute the CD or any of its contents with anyone outside of your company. Your ownership of the CD is also covered by the non-disclosure agreements and letting anyone outside of your company know that you have it is a violation of those agreements.

Contents

Inside the DDK, you will find the following folders: 

 Developer Program - contains information and forms for the Mac OS 8 Driver Program 
 Applications - contains the applications needed to read documentation or use the DDK 
 Mac OS 8 Runtime SW - contains the files need to install version D11e4 of the Mac OS 8
 Developer Documentation
 Mac OS 8 Dev. Env. SW - contains headers & libraries corresponding to the version of Mac OS 8 contained on the DDK
 Sample Code - contains sample OpenFirmware and driver code
 Tools - misc. tools to assist you in the development & debugging of your drivers
 Presentations - Contains some of the Mac OS 8 presentations given in the past

Most documents on the CD are in .pdf format and will appear as generic icons if you do not have the Adobe Acrobat Reader application installed. This application is provided in the Applications folder on this CD.

Testing

 This build was tested successfully against the following configurations:

6100/66MHz/24MB          7100/80MHz/40MB          8100/110MHz/24MB
6100/60MHz/48MB          7100/80MHz/24MB          8100/100MHz/24MB
6100/60MHz/16MB          7100/80MHz/16MB          8100/80MHz/24MB
                                          7100/66MHz/24MB

7200/90MHz/16MB          8500/120MHz/40MB        9500/132MHz/32MB
7200/75MHz/24MB          8500/120MHz/24MB        9500/132MHz/24MB
                                                                                    9500/120MHz/24MB
7500/100MHz/32MB                                                  9500/120MHz/16MB
7500/100MHz/24MB
7500/100MHz/16MB

Caveats

 This collection of code and documentation has demonstrated its useful for driver developers. While some applications do work with the current OS, the DDK is not intended to provide support for application developers. Application compatibility testing and development should wait until the Mac OS 8: Developer Release: Compatibility Edition which will be distributed this summer.

Where To Begin

If youre new to developing drivers on Macintosh, we encourage you to begin by reading the MacOS documentation in the Documentation folder before attempting to code. This should give you an understanding of the architecture in which youll create and run your driver. Next, try building the sample code thats in the Samples/Driver Samples folder on the DDK to get a perspective on the process and code that is required to develop your own driver. 

If youve already written drivers on the Macintosh, you would do well to review the documentation relating to your product area. Since developing drivers for Mac OS 8 is different from those developed for previous versions of the MacOS, it would be prudent to familiarize yourself with those differences. It is also wise to scan the sample code (and build it if it would be helpful) to identify key sections which you will need in your own driver.

In addition to providing insight into creating drivers under Mac OS 8, the sample code could also be used as a starting point for your own driver. Simply duplicate the appropriate project, globally replace its symbolics with names more meaningful to your own product and youll be off to a good start.

Driver Development Issues

For all users, we wish to emphasize some key issues common to all who are creating drivers under Mac OS 8:

Most developers will be creating drivers for products that are supported by one of Mac OS 8s many families. As a result, it is important that each developer understand the family specific requirements that exist for their driver. MOST DRIVERS WILL NO LONGER INTERFACE WITH THE DEVICE MANAGER.

For those developers creating products that dont belong to a predefined family, the Mac OS 8 Device Manager can be used to install and interact with your driver. However, we emphasize the point that the vast majority of drivers do have a family. So, before using the Mac OS 8 device manager, make certain that your product is one of the rare exceptions. You may consider contacting technical support to double check.

Applications reside in a different address space than drivers do. They CAN NOT interact with hardware directly. By can not, we do not mean that Apple strongly discourages it (which we do, but thats besides the point). We mean, no matter how you try, all applications are denied the ability to directly communicate with hardware. So, if you have an existing application that does talk directly with hardware, it MUST be rewritten to interface with a driver.

You are to keep all interrupt activity to an absolute minimum when handling a hardware interrupt. Remember, PowerPC machines have only one interrupt line; unlike 680x0 machines that had seven. So, when you are handling a hardware interrupt, no one elses hardware interrupt routine can executed. For detailed information, read the documentation provided for the MacOS Kernel.

Online Support

Internet access (for Apple Partners and Associates) to Apples Developer Support is available via: http://dev.info.apple.com/

Questions and comments regarding the DDK should be sent to e-mail: macos8-io-feedback@apple.com

If you are not a member of the Apple Developer Program, call Macintosh Developer Services at (408) 974-4897 to get more information and an enrollment form.